<?php

    /**
    * Данный скрипт является обработчиком 404 ошибки.
    * Скрипт подставляет содержимое из сущности T_MENU
    * соответствующего запрошенному адресу
    */

    require_once(dirname(__FILE__).'/globals.inc');

    $page = $_SERVER['REQUEST_URI'];

    $file = constant('CURRENTSITE_DIR').'/'.substr($page, 1);
    $file = str_replace('?'.$_SERVER['QUERY_STRING'], null, $file);
    if(($pos = strpos($file, '?')) !== false)
    {
        $file = substr($file, 0, $pos);
    }

    if(file_exists($file))
    {
        if(is_dir($file))
        {
            $file = realpath($file).'/index.php';
        }
        // скрываем системные файлы от посторонних глаз
        if(!in_array(basename($file), Array('access.inc', 'schema.xml', 'site_main.inc', 'site.inc')))
        {
            require_once(realpath($file));
            exit;
        }
    }

    $mikron->Page->StartBody();
    $mikron->Tools->SiteMenu->Refresh();
    $currentMenuItem = $mikron->Tools->SiteMenu->getCurrentMenu();
    if(is_object($currentMenuItem))
    {
        header ('HTTP/1.0 200 Ok');
        echo $currentMenuItem->page->value;
    }
    else
    {
        header ('HTTP/1.0 400 Not found');
        ?><h1>404</h1>
        <?php echo $_SERVER['REQUEST_URI']; ?>
        <h2>По данному адресу нет страниц.</h2><?php
    }

    $mikron->Page->EndBody();

/*
    $menus = $mikron->Queries->QueryAsArray('T_MENU');

    // Easter egg 1/9 (internet radio «Station 2.0»)
    $p = new T_MENU();
    $p->link->value = '/station20/';
    $p->page->value = '<object height="190" width="420" data="http://www.station20.ru/widget.swf" type="application/x-shockwave-flash">
<param name="name" value="radio" />
<param name="bgcolor" value="#ffffff" />
<param name="src" value="http://www.station20.ru/widget.swf" />
</object>';
    $menus[] = $p;
*/

?>